/**
N个结点当中枚举至多K个结点, 每次枚举一个结点后需要判断其是否能造成所有边都被去除掉。
**/
#include <bits/stdc++.h>
using namespace std;

bool matrix[101 * 101];             // 邻接矩阵;
bool temp[101 * 101];               //  用来对别的数组;
int choices[101];                   // 表示选择的顶点
int _index = 0;

int temp[];                      // 存放被删除的边

// 从 cur 开始选择 至多 k 个顶点. 总共n个顶点。
bool dfs(int cur, int k, int n)
{
    if(n - cur  < k) return false;
    if(k == 0) return false; 

    
    // 从cur开始选择, 顶点 
    for(int i = cur; i < n; ++i)
    {
        choices[_index] = i;
        // 选择 i, 并删除掉与其关联的边
        _index += 1; 

        if(dfs(i + 1, k - 1, n))
        {
            return true;
        }
        _index -= 1;
        
        // 不选择
        if(dfs(i + 1, k, n))
        {
            return true;
        }
    }
    return false;
}   
int main()
{
#ifdef LOCAL
    freopen("ADV-307.in", "r", stdin);
#endif
    ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);
    int n, m, k, u, v;
    cin >> n >> m >> k;
    for(int i = 0; i < m; ++i)
    {
        cin >> u >> v; u -= 1, v -= 1;
        matrix[u * 101 + v] = true;
        matrix[v * 101 + u] = true;
    }
    
    return 0;
}